// 导入 http 模块
import http from 'wechat-http'
// 基础路径
http.baseURL = 'https://live-api.itheima.net'

//请求拦截器
http.intercept.request = function (options) {
  // 扩展头信息
  const defaultHeader = {}
  // 身份认证
  defaultHeader.Authorization = 'Bearer ' + getApp().token
  // 与默认头信息合并
  options.header = Object.assign({}, defaultHeader, options.header)
  // 处理后的请求参数
  return options
}
//配置响应拦截器
http.intercept.response=async function ({data,config}){
   if(data.code===401) {
    const app= getApp()
    // 1.3 状态为 401 且接口为 /refreshToken 表明 refreshToken 也过期了
    if(config.url.includes('/refreshToken')){
      // 获取当前页面的路径，保证登录成功后能跳回到原来页面
      const pageStack = getCurrentPages()
      const currentPage = pageStack.pop()
      const redirectURL = currentPage.route
       // 跳由跳转（登录页面）
       return wx.redirectTo({
        url:'/pages/login/index?redirectURL ='+redirectURL
       })
    }
   const res=await http({
     url:'/refreshToken',
     method:'POST',
     //请求头
     header:{
      Authorization:'Bearer ' + app.refreshToken
     }
   })
   //检查调接口是否成功
  //  console.log(res);
  if(res.code!==10000) return wx.utils.toast('更新token失败')
 // 重新存储新的 token
 app.setToken('token', res.data.token)
  app.setToken('refreshToken',res.data.refreshToken)
  //获取到原来接口请求的参数
 config=Object.assign('config',{header:{
   Authorization:'Bearer ' +res.data.token
 }}
 
 )
 //重新发请求
 return http(config)
   }
  //  console.log(data);
  return data

}
// //第二种解构写法
// http.intercept.response=function ({data}){
//   return data
// }
wx.http=http
//普通模块导出
export default wx.http